#####################################################################################################################################################
# Description: Makefile - To Compile the project programs development in C++
#       Autor: Yandi Naranjo Basalo (PhD. Research)
# Institution: Group RMN (Miquel Pons Laboratory) - IRB Barcelona
# Last Change: 18-10-2011
#     Project: Project with a Prof. Miquel Pons (LINGO in Complexes from the PDB).
#####################################################################################################################################################
#  Compiler
#####################################################################################################################################################
GCC          = g++
MPI          = mpic++
#####################################################################################################################################################
#  Obtain the cluster for input file in SMI format
#####################################################################################################################################################

OBJECT1      = SmileStruct.o SmileStore.o SmileProfile.o parallel_exec.o

ClusterLINGOParallel: $(OBJECT1)
	$(MPI) $(OBJECT1) -o bin/ClusterLINGOParallel -lz

SmileStruct.o: SmileStruct.cpp
	$(MPI) -c SmileStruct.cpp

SmileStore.o: SmileStore.cpp SmileStruct.o
	$(MPI) -c SmileStore.cpp

SmileProfile.o: SmileProfile.cpp
	$(MPI) -c SmileProfile.cpp

parallel_exec.o: parallel_exec.cpp SmileProfile.o SmileStore.o
	$(MPI) -c parallel_exec.cpp
#####################################################################################################################################################
#  Obtain the cluster for input file in SMI format
#####################################################################################################################################################

OBJECT2      = SmileStruct.o SmileStore.o SmileProfile.o parallel_exec_Matrix.o

ClusterLINGOParallelMatrix: $(OBJECT2)
	$(MPI) $(OBJECT2) -o bin/ClusterLINGOParallelMatrix -lz

parallel_exec_Matrix.o: parallel_exec_Matrix.cpp SmileProfile.o SmileStore.o
	$(MPI) -c parallel_exec_Matrix.cpp
#####################################################################################################################################################
# All
#####################################################################################################################################################

all:	$(OBJECT1) $(OBJECT2)

	$(MPI) $(OBJECT1) -o bin/ClusterLINGOParallel -lz
	$(MPI) $(OBJECT2) -o bin/ClusterLINGOParallelMatrix -lz
	mv *.o obj/.

#####################################################################################################################################################

cleanObj:
	rm obj/*.o

#####################################################################################################################################################

clean:
	rm obj/*.o
	rm bin/ClusterLINGOParallel bin/ClusterLINGOParallelMatrix

#####################################################################################################################################################
# End
#####################################################################################################################################################


